#pragma once

class RRenderer;

class RDepthstencilState
{
	friend class MaterialRequest;
private:
	GLenum		m_depthTest;
	GLenum		m_depthMask;
	GLenum		m_depthFunc;
	GLenum		m_stencilTest;
	GLenum		m_stencilMask;

	void		SetDepthTest(GLenum n);
	void		SetDepthMask(GLenum n);
	void		SetDepthFunc(GLenum n);
	void		SetStencilTest(GLenum n);
	void		SetStencilMask(GLenum n);

public:
	RDepthstencilState();
	GLenum		GetDepthTest() const;
	GLenum		GetDepthMask() const;
	GLenum		GetDepthFunc() const;
	GLenum		GetStecilTest() const;
	GLenum		GetStencilMask() const;

	void		Bind() const;
};